From 2e14ea84f331613b130e6494b2ccbaba3c85d0cc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Sun, 12 Apr 2020 09:07:57 +0200 Subject: [PATCH] label: Pull all pango attributes from the theme Dont' force an underline attribute here. Just ask the theme for the text-decoration. --- gtk/gtklabel.c | 41 ++++++++++++++++++++++------------ gtk/theme/Adwaita/_common.scss | 4 +--- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 6b97b0a4f4..b960018f43 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -2988,8 +2988,6 @@ gtk_label_update_layout_attributes (GtkLabel *label) if (priv->select_info && priv->select_info->links) { - const GdkRGBA *link_color; - PangoAttribute *attribute; guint i; attrs = pango_attr_list_new (); @@ -2997,21 +2995,36 @@ gtk_label_update_layout_attributes (GtkLabel *label) for (i = 0; i < priv->select_info->n_links; i++) { const GtkLabelLink *link = &priv->select_info->links[i]; - - attribute = pango_attr_underline_new (TRUE); - attribute->start_index = link->start; - attribute->end_index = link->end; - pango_attr_list_insert (attrs, attribute); + const GdkRGBA *link_color; + PangoAttrList *link_attrs; + PangoAttribute *attr; + GSList *attributes; + GSList *l; style = gtk_css_node_get_style (link->cssnode); - link_color = gtk_css_color_value_get_rgba (style->core->color); + link_attrs = gtk_css_style_get_pango_attributes (style); + + attributes = pango_attr_list_get_attributes (link_attrs); + for (l = attributes; l; l = l->next) + { + attr = l->data; - attribute = pango_attr_foreground_new (link_color->red * 65535, - link_color->green * 65535, - link_color->blue * 65535); - attribute->start_index = link->start; - attribute->end_index = link->end; - pango_attr_list_insert (attrs, attribute); + attr->start_index = link->start; + attr->end_index = link->end; + pango_attr_list_insert (attrs, attr); + } + + g_slist_free (attributes); + + link_color = gtk_css_color_value_get_rgba (style->core->color); + attr = pango_attr_foreground_new (link_color->red * 65535, + link_color->green * 65535, + link_color->blue * 65535); + attr->start_index = link->start; + attr->end_index = link->end; + pango_attr_list_insert (attrs, attr); + + pango_attr_list_unref (link_attrs); } } else if (priv->markup_attrs && priv->attrs) diff --git a/gtk/theme/Adwaita/_common.scss b/gtk/theme/Adwaita/_common.scss index 7943da00b9..5d2c1cdb39 100644 --- a/gtk/theme/Adwaita/_common.scss +++ b/gtk/theme/Adwaita/_common.scss @@ -1050,6 +1050,7 @@ list > row button.image-button:not(.flat) { button:link, link:link { color: $link_color; + text-decoration: underline; &:visited { color: $link_visited_color; @@ -1097,9 +1098,6 @@ button:visited { > label { @extend %link; - - text-decoration-line: underline; - } } -- 2.30.2